
for i in range(1, 10):          # 循环 第1-9行
   for j in range(1, i+1):         # 当j循环到1的时候，进行第一列循环，当j超出i+1时，进入i的第2次循环，依次类推
       print('{}*{}={:<4}'.format(j, i, j*i), end='')           # 输出format格式
   print()

print('=='*60)

for a in range(9, 0, -1):          # 第9行循环至第1行
   for b in range(1, a+1):            # 从第9列开始循环，进行一列循环，当j超出i+1时，进入i的第2次循环，依次类推
       print('{}*{}={:<4}'.format(b, a, b*a), end='')            # 输出format格式
   print()

print('=='*60)

for i in range(1, 10):          # 循环第1-9行
    for k in range(1, 10-i):            # 循环空格的数量
        print('{:<8}'.format(''), end='')          # 输出空格
    for j in range(i, 0, -1):           # 当j循环到i的时候，进行第一列循环，当j超出i到0时，进入i的第2次循环，依次类推
        print('{}*{}={:<4}'.format(j, i, j*i), end='')
    print()
print('=='*60)

for i in range(9, 0, -1):           # 从第9行到第1行
    for k in range(1, 10-i):            # 循环空格数量
        print('{:<8}'.format(''), end='')
    for j in range(i, 0, -1):           # 从第9列开始循环，进行一列循环， 当j 超出i到0的范围时， 再次进入i的第二次循环，以此类推
        print('{}*{}={:<4}'.format(j, i, j*i), end='')
    print()
print('=='*60)



i = 1           # 代表行数和第几行， 99乘法表从第一行开始循环， 确定起始第一行
while i <= 9:           # 当i小于等于9时进入循环
    j = 1           # 代表列数，第一列， 确定列数
    while j <= i:           # 当j 大于i的时候跳出循环， 当i， j满足条件时，可输出99乘法表的框架
        print('{}*{}={:<2}'.format(j, i, j*i), end='  ')         # format方法可以使得输出整齐
        j = j + 1           # 循环同一行内的所有列数， 且当j不满足小于等于i时， 跳出此循环，进入后面的循环语句， 并且后面没有输出
    print()
    i = i+1         # 行数加1， 开始第二行的循环内容， 并输出第二行的所有列的式子

print('=='*60)          # 分割线

i = 9           # 从第9行开始循环写
while i >= 1:           # 当i大于等于1的时候进入循环
    j = 1           # 此时内循环的起始条件是列数等于1，也就是第一列
    while j <= i:           # j小于等于i时跳出循环，
        print('{}*{}={:<2}'.format(j, i, j*i), end='  ')
        j = j + 1           # 列数循环加1， 此时一直循环到此行数的所有列直到不满足j小于等于i时跳出循环
    print()
    i = i-1         # 行数循环加1，并重复执行内循环的操作步骤
print('=='*60)



i = 1           # 起始第一行
while i <= 9:           # 当i小于等于9时，进入内循环语句
    k = 8           # 定义一个起始空格变量
    while k >= i:           # 当起始空格变量大于等于i的时候，输出空格
        print('{:<8}'.format(''), end='')            # 输出空格
        k = k - 1           # 循环输出一行内的空格直到输出式子为止
    j = i           # 上面循环完成后进入此循环， 初始列数等于行数时
    while j >= 1:       # j 大于等于 1时， 进入下列循环
        print('{}*{}={:<2}'.format(i, j, i*j), end='  ')         # 输出format格式
        j = j - 1       # 同一行的列数循环减1
    print()
    i = i + 1       # 行数加1循环，并重复执行上述内部的循环

print('=='*60)
i = 9           # 初始行数
while i >= 1:           # 当i大于等于1时，进入下列循环
    k = 8           # 定义初始空格变量
    while k >= i:           # 当初始空格变量大于等于i的时候，输出空格
        print('{:<8}'.format(''), end='')            # 输出空格
        k = k - 1           # 空格输出循环减1， 并直到输出式子为止
    j = i           # 初始列数等于行数
    while j >= 1:           # 进入新循环， 当j大于等于1时
        print('{}*{}={:<2}'.format(i, j, i*j), end='  ')            # 输出format格式
        j = j - 1           # 同一行的列数循环减1，输出所有同一行的所有列数式子
    print()
    i = i - 1           # 行数加1循环，再重复上述所有步骤


